Route Guards এবং Access Control

Mobile App Development - মিটিয়র (Meteor) - Routing এবং Navigation
178

Route Guards কি?

Route Guards হলো এমন একটি প্রযুক্তি বা কৌশল, যা ব্যবহার করে আপনি একটি ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারীর বিভিন্ন রুট (পথ) বা পৃষ্ঠায় অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন। এটি সাধারণত রাউটিং সিস্টেম বা রাউটিং লাইব্রেরি দ্বারা নির্ধারিত হয় এবং মূলত অথেন্টিকেশন (Authentication) এবং অথোরাইজেশন (Authorization) এর উপর ভিত্তি করে কাজ করে।

Route Guards ব্যবহারকারীদের সুরক্ষিত পৃষ্ঠা বা রুট এ প্রবেশ করতে বাধা দেয় যদি তারা সঠিকভাবে লগইন না থাকে বা তাদের প্রয়োজনীয় অনুমতি না থাকে। এটি মূলত Angular, React, এবং অন্যান্য ফ্রেমওয়ার্কে ব্যবহৃত হয়।

Route Guards এর কাজ:

  1. Authentication Guard: ব্যবহারকারী যদি সঠিকভাবে লগইন না থাকে, তবে তাকে নির্দিষ্ট পৃষ্ঠায় প্রবেশ করতে দেওয়া হয় না।
  2. Authorization Guard: ব্যবহারকারী যদি নির্দিষ্ট ভূমিকা বা অনুমতি না থাকে, তবে তারা নির্দিষ্ট রুটে প্রবেশ করতে পারে না। যেমন, একজন সাধারণ ব্যবহারকারী অ্যাডমিন পৃষ্ঠায় প্রবেশ করতে পারবে না।

Angular-এ Route Guards ব্যবহার

Angular ফ্রেমওয়ার্কে Route Guards ব্যবহার করা খুবই সহজ। Angular-এ চারটি প্রকারের Route Guard থাকে:

  1. CanActivate: রুটের আগে ব্যবহারকারী অ্যাক্সেস করতে পারে কিনা চেক করে।
  2. CanActivateChild: যদি রুটের জন্য চাইল্ড রুট থাকে, তাহলে এটি চেক করবে।
  3. CanDeactivate: রুটের আগেই ব্যবহারকারী কি একটি নির্দিষ্ট পৃষ্ঠা ত্যাগ করতে পারে তা চেক করে।
  4. CanLoad: ব্যবহারকারী যদি রুটটি লোড করতে পারে কিনা চেক করে।

CanActivate উদাহরণ:

// auth.guard.ts (Route Guard)
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
import { AuthService } from './auth.service';

@Injectable({
  providedIn: 'root'
})
export class AuthGuard implements CanActivate {

  constructor(private authService: AuthService, private router: Router) {}

  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): boolean {
    if (this.authService.isLoggedIn()) {
      return true;
    } else {
      this.router.navigate(['/login']);
      return false;
    }
  }
}

এখানে, AuthGuard চেক করে ব্যবহারকারী লগইন করেছে কিনা। যদি না থাকে, তবে /login পৃষ্ঠায় রিডাইরেক্ট করা হয়।


Access Control কি?

Access Control হলো একটি প্রক্রিয়া, যা ব্যবহারকারীদের তাদের ভূমিকা (role) এবং অনুমতির (permission) উপর ভিত্তি করে অ্যাপ্লিকেশনে বা সিস্টেমে অ্যাক্সেস নিয়ন্ত্রণ করে। এটি সুনির্দিষ্ট ডেটা বা ফিচারগুলিতে অ্যাক্সেস দেওয়া বা সীমাবদ্ধ করার জন্য ব্যবহৃত হয়।

Access Control সাধারণত দুটি ধরনের হয়:

  1. Role-Based Access Control (RBAC): ব্যবহারকারীর ভূমিকা অনুযায়ী অ্যাক্সেস নিয়ন্ত্রণ করা হয়। যেমন, একজন Admin ব্যবহারকারী সব কিছু দেখতে এবং সম্পাদনা করতে পারে, কিন্তু একজন সাধারণ ব্যবহারকারী শুধুমাত্র তাদের নিজস্ব ডেটা দেখতে পারে।
  2. Attribute-Based Access Control (ABAC): এখানে, অ্যাক্সেসের সিদ্ধান্ত আরও বিস্তারিত এক্সটেনশন হিসেবে বিভিন্ন প্যারামিটার বা অ্যাট্রিবিউটের উপর ভিত্তি করে নেওয়া হয়, যেমন সময়, স্থান, অথবা অন্য কোনো ডেটা।

Access Control এর সুবিধা:

  1. Security (নিরাপত্তা):
    শুধুমাত্র অনুমোদিত ব্যবহারকারীরা সিস্টেমের সংবেদনশীল বা গুরুত্বপূর্ণ তথ্য অ্যাক্সেস করতে পারে।
  2. Flexibility (সুবিধা):
    ভিন্ন ভিন্ন ধরনের ব্যবহারকারীর জন্য ভিন্ন ভিন্ন অ্যাক্সেস স্তর নির্ধারণ করা সম্ভব।
  3. Audit and Monitoring (অডিট এবং মনিটরিং):
    কিভাবে অ্যাক্সেস হচ্ছে এবং কোন ব্যবহারকারী কিভাবে ডেটা বা ফিচার ব্যবহার করছে, তা ট্র্যাক করা সম্ভব।

Role-Based Access Control (RBAC) উদাহরণ

ধরা যাক, একটি অ্যাপ্লিকেশন তৈরি করা হচ্ছে যেখানে Admin এবং User দুটি ভূমিকা থাকবে।

// Simple Access Control Example
const roles = {
  admin: ['create', 'read', 'update', 'delete'],
  user: ['read']
};

function canAccess(role, action) {
  if (roles[role] && roles[role].includes(action)) {
    return true;
  }
  return false;
}

// উদাহরণ
console.log(canAccess('admin', 'create'));  // true
console.log(canAccess('user', 'delete'));  // false

এখানে, Admin ভূমিকা একটি পূর্ণাঙ্গ অ্যাক্সেস পায় (create, read, update, delete), তবে User শুধুমাত্র read অ্যাক্সেস পায়।


সারাংশ

Route Guards এবং Access Control দুইটি গুরুত্বপূর্ণ কৌশল যা ওয়েব অ্যাপ্লিকেশন নিরাপত্তা এবং ব্যবহারের অভিজ্ঞতা উন্নত করতে ব্যবহৃত হয়। Route Guards অ্যাপ্লিকেশন রাউটিং সিস্টেমে ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করে, যেখানে Access Control ব্যবহারকারীর ভূমিকা এবং অনুমতি অনুযায়ী সিস্টেমের বিভিন্ন অংশে অ্যাক্সেস সীমিত করে। এই দুটি কৌশল একসাথে ব্যবহার করে, আপনি একটি নিরাপদ এবং কার্যকর অ্যাপ্লিকেশন তৈরি করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...